#include <iomanip>
#include <iostream>
using namespace std;

void dump(unsigned char c){
  static char xdigits[]{"0123456789ABCDEF"};
  cout << xdigits[(c >> 4) & 0xF] << xdigits[c & 0xF] << ' ';
}

struct Object {
  int a;  // 4-bytes
  int &r; // 引用是仅仅是别名，不应另占空间。
  int b;
  Object() : a(0x03020100), r(a), b(0x07060504) {
    cout << &a << endl;
    cout << &r << endl;
    cout << &b << endl;
  }
};

int main() {
  // 实际Object占24字节，a之后为使
  cout << sizeof(Object) << endl;
  Object o;
  const char* p = (const char*)&o;
  cout << setfill('0') << uppercase << hex;
  for(int i = 0; i < sizeof(o);){
    dump(p[i]);
    ++i;
    if((i % 8) == 0){
      cout << endl;
    }
  }
}